import { getToken, setToken, removeToken, setOprid, getOprid,getOprname,setOprname } from '@/utils/auth';
import { getUserInfoAPI } from '@/api/user';

export default {
    namespaced: true,
    state: {
        userInfo: {}, // 用户信息
        oprid: getOprid() || null,
        token: getToken() || null, // token
        oprname: getOprname() || null // token
        // user:
    },
    mutations: {
        // 保存token
        setToken(state, data) {
            state.token = data.token;
            setToken(data.token); // 保存到本地(持久化)
        },
        setOprid(state, data) {
            state.oprid = data.oprid;
            setOprid(data.oprid); // 保存到本地(持久化)
        },
        setOprname(state, data) {
            console.log(data)
            state.oprname = data.oprname;
            setOprname(data.oprname); // 保存到本地(持久化)
        },
        // // 保存信息
        // setUserInfo(state, data) {
        //     state.userInfo = data.userInfo;
        //     setToken(data.userInfo); // 保存到本地(持久化)
        // },
        // 删除token
        removeToken(state) {
            state.token = null;
            removeToken();
        },
        // 保存用户基本信息
        setUserInfo(state, userInfo) {
            state.userInfo = userInfo;
        },
        // 删除用户信息
        removeUserInfo(state) {
            state.userInfo = {};
        }
    },
    actions: {
        // 保存用户基本信息
        async getUserInfo(context) {
            const res = await getUserInfoAPI({
                token: getToken() || '',
                oprid: getOprid() || ''
            }); // 获取用户信息
            context.commit('setUserInfo', res.result);
            // context.commit('setUserInfo', res.data) // 把两份数据合并后保存到vuex中(合并后有头像地址等信息)
            // 将用户可访问菜单项返回出去
            // return res.data.roles
        },
        // 退出登录
        logout(context) {
            context.commit('removeToken'); // 清除token
            context.commit('removeUserInfo'); // 清除用户信息
        }
    }
};
